Controlling the Spacing within Equations and Boxes

Most of the special Z symbols are defined in a way that allows TEX to space them out correctly. Sometimes, however, you'll need to give TEX a helping hand if you want it to get the spacing right. For example, to get map f you need to type 18. The 19 gives you a thin space: if this is omitted, the input 20 gives mapf, because TEX ignores spaces in math mode.

Sometimes it is useful to indent the left margin to emphasis the logical structure of the predicate. The command 21 does this by making the corresponding line in the output have one helping of indentation. As things get more nested, you can say 22, 23, and so on. But if you should ever get beyond 24, you'll need to use braces around the argument: 25, and you'd better look for some way to simplify your specification! These little tab marks might look different to normal tabs but are never the less convenient. They're short, and they don't get longer as the tabbing gets deeper, within reason, so they can be tucked in neatly on the left, well away from the maths. The size of `helping' you get with 26 is determined by the 27 parameter (see Section 7).

If you want a more powerful aligning mechanism than tabbing then you can use the margin stack as shown in the example below. The command 28 sets the future left margin to the current horizontal position and pushes the old value onto a margin stack. The command 29 resets the left margin to its previous value (which is popped off the stack).


#example103#

If a schema or other box contains more than one predicate below the line, it often looks better to add a tiny vertical space between them, as in this example:


#example112#

This is done with the command 30, which behaves syntactically like 31. The command 32 is provided <#121#>instead<#121#> of the optional argument to 33 which LATEX provides in other environments. If larger vertical spacing is required, the commands 34 and 35 may be used (giving 2 and 4 times as much space as 36 respectively).

Normally, the contents of a schema box are kept on a single page. For large schemas it may be necessary to split the box across pages. You must specify which places are suitable for splitting using one of 37, 38 or 39. If no split is performed at this point, a vertical space will be added as if the user had typed 40, 41, or 42 respectively. You can also use the 43 command to force a page break within a box. (These breaking facilities will hopefully never be needed for schemas, but may become necessary for class specifications.)